package com.haibo.entity.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * @Author : 刘海波
 * @Date: 2025/9/22 11:02
 * @Description: 【三级卡控提醒(主表)】
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
public class ThreeLevelCardControlReminderDTO implements Serializable {

    /**
     * 病案号（住院场景有值）
     */
    @JsonProperty(value = "case_history_id")
    private String caseHistoryId;

    /**
     * 预约号 (门诊场景有值)
     */
    @JsonProperty(value = "reservation_no")
    private String reservationNo;

    /**
     * 就诊场景 1、门诊 2、住院
     */
    @NotNull(message = "就诊场景不允许为空")
    @JsonProperty(value = "scene")
    private Integer scene;

    /**
     * 就诊号
     */
    @NotBlank(message = "就诊号不允许为空")
    @JsonProperty(value = "visit_id")
    private String visitId;

    /**
     * 患者ID（拉取数据的患者ID，不一定是医院原始患者ID）
     */
    @NotBlank(message = "患者ID不允许为空")
    @JsonProperty(value = "patient_id")
    private String patientId;

    /**
     * 质控消息提醒列表
     */
    @NotEmpty(message = "质控消息提醒列表不允许为空")
    @JsonProperty(value = "msg_list")
    private List<ThreeLevelCardControlReminderItemDTO> msgList;


}
